求C语言程序代码~~o(>_<)o ~~ 题目:图像颠倒

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:49:11
。假设原图像区域左上角坐标为(x0, y0),右下角坐标为(x1, y1),将图像沿x轴颠倒,则新图像的左上角坐标为(x0, -y0),右下角坐标为(x1, -y1)。在屏幕上实现图像的颠倒。
基本要求:
1.保存原图像到缓冲区;
2.擦除原图像;
3.计算平移后的新坐标;
4.在新的坐标位置重新显示原图像;
(在TC环境下运行的代码)

给个提示,以供参考。

每行的图 像信息都保持不变,而只是改变了行的顺序,将第一行和最后的第n行相互交换,第二行和第n - 1行交换……,依此类推,从而实现了图像的颠倒。只需采用按行交换的方式,即可方便地修改缓冲区内容,实现图像的颠倒。

(1) 用getimage()保存原图像,并擦除原图像。
(2) 计算图像的高度,即行数height;计算图像宽度width;计算保存一行图像信息
height = bottom - top + 1;
width = right - left + 1;
linebytes = (width + 7) / 8 * 4;
(3)利用行交换缓冲区linebuf在图像内存缓冲区中进行信息交换,即把第一行和最末行交换,第2行和第n-1行交换……,依此类推,直至全部交换完毕。
(4)把交换后的图像缓冲区内容重新显示在屏幕上。